<script>
export default {
	onLaunch: function() {
		console.log('App Launch');
		// 判断是否有网络
		uni.getNetworkType({
			complete: e => {
				console.log('检测当前的的网络状态------', e.networkType);
				let networkType = e.networkType || 'none';
				switch (networkType) {
					case 'none':
						uni.showModal({
							title: '当前无网络',
							content: '请检查您的网络链接',
							showCancel: false,
							confirmText: '确定',
							success: () => {}
						});
						break;
					// case 'wifi':
					// 	uni.showModal({
					// 		title: '当前wifi网络',
					// 		content: '网络情况良好',
					// 		showCancel: false,
					// 		confirmText: '确定',
					// 		success: () => {}
					// 	});
					// 	break;
					// case '2g':
					// 	uni.showModal({
					// 		title: '您当前是2g网络',
					// 		content: '当前为非Wi-Fi环境，请注意流量消耗',
					// 		showCancel: false,
					// 		confirmText: '确定',
					// 		success: () => {}
					// 	});
					// 	break;
					// case '3g':
					// 	uni.showModal({
					// 		title: '您当前是3g网络',
					// 		content: '当前为非Wi-Fi环境，请注意流量消耗',
					// 		showCancel: false,
					// 		confirmText: '确定',
					// 		success: () => {}
					// 	});
					// 	break;
					// case '4g':
					// 	uni.showModal({
					// 		title: '您当前是4g网络',
					// 		content: '当前为非Wi-Fi环境，请注意流量消耗',
					// 		showCancel: false,
					// 		confirmText: '确定',
					// 		success: () => {}
					// 	});
					// 	break;
					// case '5g':
					// 	uni.showModal({
					// 		title: '您当前是5g网络',
					// 		content: '当前为非Wi-Fi环境，请注意流量消耗',
					// 		showCancel: false,
					// 		confirmText: '确定',
					// 		success: () => {}
					// 	});
					// 	break;
				}
			}
		});

		// 判断是否存在新版本
		var self = this;
		// 获取小程序更新机制兼容
		if (uni.canIUse('getUpdateManager')) {
			const updateManager = uni.getUpdateManager();
			//1. 检查小程序是否有新版本发布
			updateManager.onCheckForUpdate(function(res) {
				// 请求完新版本信息的回调
				if (res.hasUpdate) {
					//检测到新版本，需要更新，给出提示
					uni.showModal({
						title: '更新提示',
						// showCancel: false, //隐藏取消按钮
						confirmText: '确定更新', //只保留确定更新按钮
						content: '检测到新版本，是否下载新版本并重启小程序？',
						success: function(res) {
							if (res.confirm) {
								//2. 用户确定下载更新小程序，小程序下载及更新静默进行
								self.downLoadAndUpdate(updateManager);
							} else if (res.cancel) {
								//用户点击取消按钮的处理，如果需要强制更新，则给出二次弹窗，如果不需要，则这里的代码都可以删掉了
								uni.showModal({
									title: '温馨提示',
									content: '本次版本更新涉及到新的功能添加，旧版本无法正常访问的哦',
									// showCancel: false, //隐藏取消按钮
									confirmText: '确定更新', //只保留确定更新按钮
									success: function(res) {
										if (res.confirm) {
											//下载新版本，并重新应用
											self.downLoadAndUpdate(updateManager);
										}
									}
								});
							}
						}
					});
				}
			});
		} else {
			// 如果希望用户在最新版本的客户端上体验您的小程序，可以这样子提示
			uni.showModal({
				title: '提示',
				content: '当前微信版本过低，无法使用该功能，请升级到最新微信版本后重试。'
			});
		}
	},
	onShow: function() {
		console.log('App Show');
	},
	onHide: function() {
		console.log('App Hide');
	},
	onLoad() {
		uni.hideTabBar() // 隐藏原生底部导航栏
	},
	methods: {
		/**
		 * 下载小程序新版本并重启应用
		 */
		downLoadAndUpdate: function(updateManager) {
			var self = this;
			uni.showLoading();
			//静默下载更新小程序新版本
			updateManager.onUpdateReady(function() {
				uni.hideLoading();
				//新的版本已经下载好，调用 applyUpdate 应用新版本并重启
				updateManager.applyUpdate();
			});
			updateManager.onUpdateFailed(function() {
				// 新的版本下载失败
				uni.showModal({
					title: '已经有新版本了哟~',
					content: '新版本已经上线啦~，请您删除当前小程序，重新搜索打开哟~'
				});
			});
		}
	}
};
</script>

<style lang="scss">
// 为了兼容性建议使用相对路径， 且引入的样式，需要写在style标签有效内容中的最前面
@import './static/css/iconfont.css';
// 引入公告css
@import './static/css/common.css';
/* 注意要写在第一行，同时给style标签加入lang="scss"属性 */
@import 'uview-ui/index.scss';
body,
html {
	line-height: 1;
	font-family: 'Helvetica Neue', Helvetica, Tahoma, Arial, 'PingFang SC', 'Hiragino Sans GB', 'Heiti SC', 'Microsoft YaHei', 'WenQuanYi Micro Hei', sans-serif;
	-webkit-text-size-adjust: none;
	font-size: 30rpx;
	color: #333;
}
* {
	margin: 0;
	padding: 0;
	box-sizing: border-box;
}
</style>
